package com.xbongbong.pro.sheet.pojo.dto;

import com.xbongbong.paas.constant.SizeConstant;
import com.xbongbong.paas.toolbox.wrap.BaseDTO;
import com.xbongbong.paas.toolbox.wrap.QueryIgnore;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.List;

/**
 * 回、付款单明细dto
 * @author zcp
 * @version v1.0
 * @date 19/11/12 012 9:37
 * @update 19/11/12 012 9:37
 * @since v1.0
 */
@Getter
@Setter
@ToString
public class SheetAmountDetailGetDTO extends BaseDTO {
    private static final long serialVersionUID = -4627042382938987966L;

    /**
     * 业务类型
     * 当创建已核销、预收款核销、坏账时，要获取【未收、部分未收】的应收款，应收款不存在时，获取的是【合同未收金额】
     * 当红冲已核销、红冲预收款时，要获取原回款单redId关联的【已收、部分已收】的应收款，应收款不存在时，获取的是【合同已收金额】
     * 预收款、红冲预收款没有关联合同，不能调用该接口
     */
    @NotNull(message = "业务类型不能为空")
    private Integer businessType;
    /**
     * 合同id集合
     */
    @NotEmpty(message = "{dto.msg.paymentAmountDetailGet.dataIdList.NotEmpty}")
    private List<Long> dataIdList;

    /**
     * 是否把空条件塞入，比如获取关联的应收款时，有可能有的回款单没有关联应收款，paymentId条件应该塞入一个空数组（即查不出符合条件的应收款list）
     */
    private Boolean emptyFilterFlag;

    /**
     * 应收款id数组（从应收款关联新建回款单，红冲回款单时需要）
     * 该值为空，则返回合同关联的所有应收款（无计划则返回合同本身）；该值不为空，则只展示该paymentIdList内的应收款
     */
    private List<Long> paymentIdList;

    /**
     * 关联原始回款单id
     */
    private Long linkPreId;

    /**
     * 分页当前页
     */
    @Getter(onMethod_ = {@QueryIgnore})
    private Integer page;

    /**
     * 分页每页记录数
     */
    @Getter(onMethod_ = {@QueryIgnore})
    private Integer pageSize;

    public SheetAmountDetailGetDTO(){
        this.page = 1;
        //默认查询出10000条
        this.pageSize = SizeConstant.PAGE_SIZE;
        this.emptyFilterFlag = false;
    }
}
